#include <bits/stdc++.h>
 
typedef long long ll;
const int N = 1e6 + 5;
int t, n;
int d[N], cnt[N], dep[N];
std::vector<int> vec[N];
 
int main() {
    std::ios::sync_with_stdio(false);
    std::cin.tie(0);
    std::cout.tie(0);
    std::cin >> t;
    while(t --) {
        std::cin >> n;
        for(int i = 1; i <= n; i ++) {
            vec[i].clear();
            d[i] = cnt[i] = dep[i] = 0;
        }
        for(int i = 2; i <= n; i ++) {
            int u;
            std::cin >> u;
            d[u] ++;
            vec[i].push_back(u);
        }
        std::queue<int> q;
        for(int i = 1; i <= n; i ++) {
            if(!d[i]) {
                q.push(i);
                dep[i] = 1;
            }
        }
        while(!q.empty()) {
            int now = q.front();
            q.pop();
            for(auto u : vec[now]) {
                dep[u] = dep[now] + 1;
                d[u] --;
                if(!d[u]) {
                    q.push(u);
                }
            }
        }
        for(int i = 1; i <= n; i ++) {
            cnt[dep[i]] ++;
        }
        int ans = 2e9;
        for(int i = 1; i <= n; i ++) {
            ans = std::min(ans, cnt[i] + i - 1);
        }
        std::cout << ans << '\n';
    }    
    return 0;
}
